package dao;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import utiles.Conecta;
import dto.LeerRankIndDTO;

public class LeerRankIndDAO {

	public List getAllRankEjecTab(String codigoConcurso, String ano, String mes, String rutCorredor) throws SQLException, IOException{

		Conecta connDao = new Conecta();
		Connection conn = connDao.ObtieneConexion();	
		List listRankEjecTab = new ArrayList();
		PreparedStatement stmt = null; 
		ResultSet rs=null; 
		try{
			String sql = "select NOMBRECORREDOR, CODIGOCATEGORIA, PRIMAPARTIDA, PUNTAJEACUMULADO, POSICIONRANKING from " + Conecta.schema + ".CC_CORREDORESPERIODO where CODIGOCONCURSO= '"+ codigoConcurso +"' and ANO="+ ano +" and MES="+ mes +" AND POSICIONRANKING > 0 and RUTCORREDOR="+rutCorredor+" ORDER BY POSICIONRANKING";
			stmt=conn.prepareStatement(sql);  
			rs=stmt.executeQuery();
			String nombrecc = null;
			String primapart= null;
			String puntacum= null;
			while (rs.next()) {
				LeerRankIndDTO BuscaDTO = new LeerRankIndDTO();	
				nombrecc = rs.getString(1);
				BuscaDTO.setNombreCorredor(nombrecc.toUpperCase());
				BuscaDTO.setCodigoCategoria(rs.getString(2));			
				primapart = rs.getString(3);
				int indice3 = primapart.indexOf(".");
				String newvar3 = primapart.substring(0,indice3)+"."+primapart.substring(indice3+1,indice3+3);
				BuscaDTO.setPrimaPartida(newvar3);	
				puntacum = rs.getString(3);
				int indice2 = puntacum.indexOf(".");
				String newvar2 = puntacum.substring(0,indice2)+"."+puntacum.substring(indice2+1,indice2+3);
				BuscaDTO.setPuntajeAcumulado(newvar2);
				String cal=rs.getString(2);
				if (cal.equals("0")){
					cal="";
					BuscaDTO.setPosicionRanking(cal);
					BuscaDTO.setPreClasifica(cal);
				}
				else{ 
					cal="SI";
					BuscaDTO.setPosicionRanking(rs.getString(5));
					BuscaDTO.setPreClasifica(cal);
				}
				BuscaDTO.setPosicionRanking(rs.getString(5));
				listRankEjecTab.add(BuscaDTO);			
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}	
		return listRankEjecTab;
	}

	public List getAllRankEjecTab2(String codigoConcurso, String tipo) throws SQLException, IOException{
		Conecta connDao = new Conecta();
		Connection conn = connDao.ObtieneConexion();	
		List listRankEjecTab2 = new ArrayList();
		PreparedStatement stmt = null; 
		ResultSet rs=null; 
		try{
			String sql="Select * from " + Conecta.schema + ".CC_CATEGORIAS where CODCONCURSO='"+ codigoConcurso +"' and CODIGOCATEGORIA='"+ tipo +"' ";
			stmt=conn.prepareStatement(sql);  
			rs=stmt.executeQuery();
			while (rs.next()) {
				LeerRankIndDTO BuscaDTO = new LeerRankIndDTO();	
				BuscaDTO.setVentaMinima(rs.getString(6));
				listRankEjecTab2.add(BuscaDTO);	
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			System.out.println(ex.getMessage());
		} finally {
			connDao.desconecta(conn);
		}	
		return listRankEjecTab2;
	}
}
